| 1 Survey
 | Wed Aug 28
 | 1. Intro, Instance Variables Video / Recording / Pacing
 | Ch 1 | No Discussion | Lab 1: Setup, Git (due 8/30)
 Slides
 | Homework 0A (due 8/30)
 |  | 
| Fri Aug 30
 | 2. Defining and Using Classes Video / Recording / Pacing
 | Ch 2 | Project 0: 2048 (due 9/6)
 | 
| 2 Survey
 | Mon Sep 02
 | No Lecture (Academic Holiday) |  | 1. Introduction to Java Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 2: Debugging (due 9/6)
 Slides
 | Homework 0B (due 9/3)
 | 
| Wed Sep 04
 | 3. References, Recursion, IntLists Video / Recording / Pacing
 | Ch 3 | Homework 1 (due 9/6)
 | 
| Fri Sep 06
 | 4. SLLists, Nested Classes, Sentinel Nodes Video / Recording / Pacing
 | Ch 4 | 
| 3 Survey
 | Mon Sep 09
 | 5. DLLists, Arrays Video / Recording / Pacing
 | Ch 5, Ch 6 | 2. Scope, Static, Linked Lists, Arrays Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 3: Debugging (Part 2) (due 9/13)
 Slides
 |  | Project 1A: LinkedListDeque61B (due 9/13)
 | 
| Wed Sep 11
 | 6. Testing Video / Recording / Pacing
 | Ch 7, TDD is dead, Unit Tests Are Waste, Response | 
| Fri Sep 13
 | 7. ArrayLists, Resizing Video / Recording / Pacing
 | Ch 8 | 
| 4 Survey
 | Mon Sep 16
 | 8. Interface and Implementation Inheritance Video / Recording / Pacing
 | Ch 9, Ch 10 | 3. Inheritance Regular / Solutions / DMS Flowchart / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 4: Git (due 9/20)
 Slides
 | Project 1B: ArrayDeque61B (due 9/20)
 | 
| Wed Sep 18
 | 9. Subtype Polymorphism, Comparators Video / Recording / Pacing
 | Ch 11 | 
| Fri Sep 20
 | 10. Iterators, Object Methods Video / Recording / Pacing
 | Ch 12 | 
| 5 Survey
 | Mon Sep 23
 | 11. Asymptotics I Video / Recording / Pacing
 | Ch 13 | 4. Iterators, Iterables, Polymorphism Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | No Lab 
 |  | 
| Wed Sep 25
 | 12. Ask Anything (midterm prep) Recording
 |  | 
| Fri Sep 27
 | 13. Midterm 1 (7-9PM) |  | Homework 2 (due 10/9)
 | 
| 6 Survey
 | Mon Sep 30
 | 14. Disjoint Sets Video / Recording / Pacing
 | Ch 14 | 5. Asymptotics, Disjoint Sets Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 5: Disjoint Sets (due 10/4)
 Slides
 | 
| Wed Oct 02
 | 15. Asymptotics II Video / Recording / Pacing
 | Ch 15 | 
| Fri Oct 04
 | 16. ADTs, Sets, Maps, BSTs Video / Recording / Pacing
 | Ch 16 | Project 2A: NGrams (due 10/18)
 | 
| 7 Survey
 | Mon Oct 07
 | 17. B-Trees (2-3, 2-3-4 Trees) Video / Recording / Pacing
 | Ch 17 | 6. ADTs, Asymptotics II, BSTs Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 6: BSTMap (due 10/11)
 Slides
 | 
| Wed Oct 09
 | 18. Red Black Trees Video / Recording / Pacing
 | Ch 18 | 
| Fri Oct 11
 | 19. Hashing Video / Recording / Pacing
 | Ch 19 |  | 
| 8 Survey
 | Mon Oct 14
 | 20. Hashing II Video / Recording / Pacing
 | Ch 20 | 7. B-Trees, LLRBs, Hashing Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 7: LLRBs (due 10/18)
 Slides
 | Homework 3 (due 10/21)
 | 
| Wed Oct 16
 | 21. Heaps and Priority Queues Video / Recording / Pacing
 | Ch 21 | 
| Fri Oct 18
 | 22. Tree and Graph Traversals Video / Recording / Pacing
 | Ch 22 | 
| 9 Survey
 | Mon Oct 21
 | 23. Graph Traversals and Implementations Video / Recording / Pacing
 | Ch 23 | 8. Graphs, Heaps Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | No Lab 
 | Project 2B: Checkpoint (due 10/28)
 | 
| Wed Oct 23
 | 24. Shortest Paths Video / Recording / Pacing
 | Ch 24 |  | 
| Thu Oct 24
 | Midterm 2 (7-9PM) |  | 
| Fri Oct 25
 | 25. Minimum Spanning Trees Video / Recording / Pacing
 | Ch 25 | 
| 10 Survey
 | Mon Oct 28
 | 26. Prefix Operations and Tries Video / Recording / Pacing
 | Ch 26 | 9. Shortest Paths, MSTs Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 8: HashMaps (due 11/1)
 Slides
 | 
| Wed Oct 30
 | 27. Directed Acyclic Graphs Video / Recording / Pacing
 | Ch 28 | Project 2B: Wordnet (due 11/12)
 | 
| Fri Nov 01
 | 28. Software Engineering I [Optional] Recording
 | Ch 27 | 
| 11 Survey
 | Mon Nov 04
 | 29. Basic Sorts Video / Recording / Pacing
 | Ch 29 | 10. Graphs II, Tries Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 9: Game of Life (Optional) 
 | 
| Wed Nov 06
 | 30. Quick Sort Video / Recording / Pacing
 | Ch 30 | 
| Fri Nov 08
 | 31. Software Engineering II [Optional] Recording
 | Ch 31 | 
| 12 Survey
 | Mon Nov 11
 | No Lecture (Academic Holiday) |  | 11. Sorting Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Lab 10: Tetris (Optional) 
 | Project 3A: World Generation (due 11/18)
 | 
| Wed Nov 13
 | 32. More Quicksort, Quick Select, Stability Video / Recording / Pacing
 | Ch 32 | 
| Fri Nov 15
 | 33. Software Engineering III [Optional] Recording
 | Ch 33 | 
| 13 Survey
 | Mon Nov 18
 | 34. Sorting and Algorithmic Bounds Video / Recording / Pacing
 | Ch 34 | 12. Sorting II Regular / Solutions / Video / Slides
 Exam Prep / Solutions / Video / Slides
 | Project 3 Workday 
 | 
| Wed Nov 20
 | 35. Radix Sorts Video / Recording / Pacing
 | Ch 35 | Project 3B: Gameplay (due 11/26)
 | 
| Fri Nov 22
 | 36. Sorting Conclusion, Algorithm Design Practice Video / Recording / Pacing
 | Ch 36 | 
| 14 Survey
 | Mon Nov 25
 | 37. Software Engineering IV [Optional] Recording
 | Ch 37 | No Discussion | No Lab 
 | 
| Wed Nov 27
 | No Lecture (Academic Holiday) |  |  | 
| Fri Nov 29
 | No Lecture (Academic Holiday) |  | 
| 15 | Mon Dec 02
 | 38. Compression [Optional] Video / Recording
 | Ch 38 | 13. Goodbye, Fun | Project 3 Demos 
 | 
| Wed Dec 04
 | 39. Compression, Complexity, and P=NP? [Optional] Video / Recording
 | Ch 39 | Homework 4 (due 12/6)
 | 
| Fri Dec 06
 | 40. Summary, Fun [Optional] Recording
 |  | 
| 16 | Mon Dec 09
 | No Lecture (RRR Week) |  | No Discussion | No Lab 
 |  | 
| Wed Dec 11
 | 
| Fri Dec 13
 | 
| 17 | Thu Dec 19
 | Final Exam (Thu, Dec 19, 3–6pm) |  |  | 
 |